package Protocols;

import Server.ServerseitigerClient;
import Server.MasterServer;

/**
 * Dieses Protokoll schreibt vor, wie sich MasterServer und 
 * ServerseitigerClient (bzw. letztendlich der Client)  unterhalten
 * 
 */
public class MasterServerProtocol {

	private MasterServer server;
	private ServerseitigerClient client;
	private String response;
	
	

	public MasterServerProtocol(MasterServer server, ServerseitigerClient client) {
		this.server = server;
		this.client = client;
	}


	/**
	 * @param clientRequest
	 * @return response
	 * Die Befehle werden in der Klasse Befehle.java definiert.
	 * 
	 */
	public String decode(String clientRequest) {
		
		String[] parts = clientRequest.split(":");
		
		EnumClientRequests befehl = EnumClientRequests.valueOf(parts[0]); 
		
		switch (befehl) {
		case LOGIN :
			response = server.login(client)+":"+client.getID(); 
			client.setName(parts[1]);
			break;
		case LOGOUT :
			//response = server.logout(client);
			break;
		case SEND_MESSAGE_TO_INDIVIDUAL :
			//response = server.sendMessage(client,parts[1],parts[2]);
			break;
		case I_AM_ALIFE :
			response = "isAlife";
			break;
			
		
		}
		
		return response;
	}

}
